It is often desirable to measure the time it takes for a frame (or packet) to travel from one device in a computer network to another. Such measurements may be used to determine a transmission delay across the network for various diagnostic and contractual verification reasons, and to synchronize time-of-day clocks among network devices. Many of the current techniques to address the measurement of time that have been used and/or proposed have a number of problematic issues that have yet to be addressed, or are otherwise cumbersome or lacking in accuracy.
For example, certain timestamp protocols require the use of multiple frame types, each type having multiple fields to be populated in a specific format, which, notably, requires a recomputation of a frame checksum value. Other timestamp protocols also do not account for the time a frame is temporarily stored (“waiting time”) in a data structure, such as a queue, prior to transmission. In addition, functions required by certain protocols that involve data insertion and removal to/from the frames can be made difficult or impossible by various security protocols, such as MACsec (Media Access Control security), or at Layer 3, IPsec (Internet Protocol security). That is, once the frame is encrypted, the timestamp information (e.g., an indication that the frame is a timestamp/sync frame) may be lost or difficult to obtain, and it can be extremely difficult to insert a timestamp into an encrypted frame.